// 引入axios
import request from '@/utils/request'
// 枚举
enum API {
    SPUURL = '/admin/product/',
    // 获取全部品牌的接口
    TMURL = '/admin/product/baseTrademark/getTrademarkList',
    // 获取照片墙的接口
    IMGURL = '/admin/product/spuImageList/',
    // 商品全部销售属性的接口
    BASESALESURL = '/admin/product/baseSaleAttrList',
    // 已有销售属性的接口
    HADSALESATTR = '/admin/product/spuSaleAttrList/',
    // 修改SPU属性值的接口
    UPDATEATTR = '/admin/product/updateSpuInfo',
    // 添加SPU属性值的接口
    ADDATTR = '/admin/product/saveSpuInfo',
    // 平台属性的接口
    ATTR='/admin/product/attrInfoList/',
    // 添加SKU
    ADDSKU = '/admin/product/saveSkuInfo',
    // 查看SKU
    SEESKU = '/admin/product/findBySpuId/',
    // 删除SPU
    DELETESPU = '/admin/product/deleteSpu/'
}

// 获取SPU列表的接口,携带3个参数,其中三级分类的id是query参数
export const reqSpuList = (page: number, limit: number, category3Id: number | string) => request.get(API.SPUURL + `${page}/${limit}?category3Id=${category3Id}`)

// 要获取修改spu列表的接口一共有四个
// 分别是:全部品牌,照片墙,商品全部销售属性,商品已有销售属性(之后要通过他俩来计算剩余的销售属性)
// 现在的问题是:在哪里发这四个请求,获得服务器数据呢?
// 如果在组件挂载的时候发请求 ==>不行,因为使用了v-show,虽然你看不见场景1,但实际它已存在
// 使用v-if呢? ==>感觉可行,组件挂载的时候发请求,因为v-if会销毁并重新创建
// 还可以使用watch监听scene的变化,当场景切换为 1 的时候发请求
// 最后一个办法就是使用 ref 实现父子组件通信
// 获取全部品牌的接口
export const reqAllTrademark = () => request.get(API.TMURL)

// 获取照片墙的接口,携带一个参数:spuId
export const reqImgList = (spuId: number) => request.get(API.IMGURL + spuId)

// 获取商品全部销售属性的接口
export const reqBaseSalesAttr = () => request.get(API.BASESALESURL)

// 获取已有销售属性的接口
export const reqHadSalesAttr = (spuId: number) => request.get(API.HADSALESATTR + spuId)

// 添加|修改SPU属性值的接口
export const reqAddOrUpdateSpuAttr = (data:any) => {
    // 判断是添加还是修改
    if (data.id) {
        // 有id则是修改
        request.post(API.UPDATEATTR,data)
    } else {
        // 无id则是添加
        request.post(API.ADDATTR,data)
    }
}

// 获取sku平台属性的接口,携带三个参数
export const reqAttrList = (category1Id:string|number,category2Id:string|number,category3Id:string|number)=>request.get(API.ATTR+`${category1Id}/${category2Id}/${category3Id}`)

// 添加SKU
export const reqAddSku = (data:any)=>request.post(API.ADDSKU,data)

// 查看SKU,携带一个参数
export const reqSeeSkuList = (spuId:number)=>request.get(API.SEESKU+spuId)

// 删除SPU,携带一个参数
export const reqDeleteSpu = (spuId:number)=>request.delete(API.DELETESPU+spuId)
